Skip to content

Conversation

tobiasdiez
Copy link
Contributor

@tobiasdiez tobiasdiez commented Jun 28, 2025

No longer needed after #39030. Fixes #40793.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

@tobiasdiez tobiasdiez changed the title Remove-sage-conf Remove sage-conf Jun 28, 2025
@dimpase
Copy link
Member

dimpase commented Sep 21, 2025

It appears that at least in some configs sage_config is broken on 10.8.beta4, see
https://groups.google.com/g/sage-support/c/rZtAZraX4Tk/m/Cb-bvWJtAgAJ

@tobiasdiez
Copy link
Contributor Author

Now that the dependencies are in, this would be ready to go. But there are a couple of CI issues, mostly due to missing gap packages. I have no idea how this works in sage-the-distro; probably I've implicitly removed the setting of certain env variables. @dimpase could you have a look?

@github-actions
Copy link

github-actions bot commented Sep 22, 2025

Documentation preview for this PR (built with commit 7b5923f; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@dimpase
Copy link
Member

dimpase commented Sep 24, 2025

Now that the dependencies are in, this would be ready to go. But there are a couple of CI issues, mostly due to missing gap packages. I have no idea how this works in sage-the-distro; probably I've implicitly removed the setting of certain env variables. @dimpase could you have a look?

I don't see much specifically related to GAP packages in CI runs.
It all looks sort of OK to me

@tobiasdiez
Copy link
Contributor Author

tobiasdiez commented Sep 24, 2025

There were issues like:

sage-runtests --long --warn-long 30.0 --random-seed=286735480429121101562228604801325644303 src/sage/algebras/affine_nil_temperley_lieb.py
**********************************************************************
Error: Failed example:: Got: #W Static module lib/oper1.g has CRC mismatch, ignoring
#W Static module lib/type1.g has CRC mismatch, ignoring
Error before error-handling is initialized: BIND_GLOBAL: variable `ListPerm' m\
ust be unbound
failed to open error stream
Syntax warning: Unbound global variable in /usr/share/gap/lib/files.gd:498
      if IsDir(path) = 'D' then
         ^^^^^
Syntax warning: Unbound global variable in /usr/share/gap/lib/files.gi:373
    if not(IsDir(dirname) = 'D') then
           ^^^^^
Syntax warning: Unbound global variable in /usr/share/gap/lib/files.gi:391
              what := IsDir(fullname);
                      ^^^^^
Syntax warning: Unbound global variable in /usr/share/gap/lib/newprofile.g:176
    return ACTIVATE_COLOR_PROFILING(b);
           ^^^^^^^^^^^^^^^^^^^^^^^^
Syntax warning: Unbound global variable in /usr/share/gap/lib/init.g:953
            status := READ_NORECOVERY(InputTextString(f.command));
                      ^^^^^^^^^^^^^^^
Syntax warning: Unbound global variable in /usr/share/gap/lib/init.g:958
            status := READ_NORECOVERY(f);
                      ^^^^^^^^^^^^^^^
Error, Variable: 'READ_NORECOVERY' must have an assigned value

    A = AffineNilTemperleyLiebTypeA(4)
Expected nothing
Got:
    #W Static module lib/oper1.g has CRC mismatch, ignoring
    #W Static module lib/type1.g has CRC mismatch, ignoring
    Error before error-handling is initialized: BIND_GLOBAL: variable `ListPerm' m\
    ust be unbound
    failed to open error stream
    Syntax warning: Unbound global variable in /usr/share/gap/lib/files.gd:498
          if IsDir(path) = 'D' then
             ^^^^^
    Syntax warning: Unbound global variable in /usr/share/gap/lib/files.gi:373
        if not(IsDir(dirname) = 'D') then
               ^^^^^
    Syntax warning: Unbound global variable in /usr/share/gap/lib/files.gi:391
                  what := IsDir(fullname);
                          ^^^^^
    Syntax warning: Unbound global variable in /usr/share/gap/lib/newprofile.g:176
        return ACTIVATE_COLOR_PROFILING(b);
               ^^^^^^^^^^^^^^^^^^^^^^^^
    Syntax warning: Unbound global variable in /usr/share/gap/lib/init.g:953
                status := READ_NORECOVERY(InputTextString(f.command));
                          ^^^^^^^^^^^^^^^
    Syntax warning: Unbound global variable in /usr/share/gap/lib/init.g:958
                status := READ_NORECOVERY(f);
                          ^^^^^^^^^^^^^^^
    Error, Variable: 'READ_NORECOVERY' must have an assigned value

and

sage-runtests --long --warn-long 30.0 --random-seed=286735480429121101562228604801325644303 src/sage/algebras/fusion_rings/fusion_double.py
**********************************************************************
Error: Failed example:: Exception raised:
Traceback (most recent call last):
  File "/sage/src/sage/doctest/forker.py", line 733, in _run
    self.compile_and_execute(example, compiler, test.globs)
  File "/sage/src/sage/doctest/forker.py", line 1157, in compile_and_execute
    exec(compiled, globs)
  File "<doctest sage.algebras.fusion_rings.fusion_double.FusionDouble[11]>", line 1, in <module>
    G = SmallPermutationGroup(Integer(16),Integer(9))
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/sage/src/sage/groups/perm_gps/permgroup_named.py", line 3561, in __init__
    self._gap_small_group = libgap.SmallGroup(order, gap_id)
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "sage/libs/gap/element.pyx", line 2597, in sage.libs.gap.element.GapElement_Function.__call__
sage.libs.gap.util.GAPError: Error, the Small Groups library is required but not installed

    G = SmallPermutationGroup(16,9)
Exception raised:
    Traceback (most recent call last):
      File "/sage/src/sage/doctest/forker.py", line 733, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/sage/src/sage/doctest/forker.py", line 1157, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.algebras.fusion_rings.fusion_double.FusionDouble[11]>", line 1, in <module>
        G = SmallPermutationGroup(Integer(16),Integer(9))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/sage/src/sage/groups/perm_gps/permgroup_named.py", line 3561, in __init__
        self._gap_small_group = libgap.SmallGroup(order, gap_id)
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "sage/libs/gap/element.pyx", line 2597, in sage.libs.gap.element.GapElement_Function.__call__
    sage.libs.gap.util.GAPError: Error, the Small Groups library is required but not installed
**********************************************************************
Error: Failed example:: Got: b0 + b1 + b7
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    b13^2 # long time (4s)
Expected:
    b0 + b3 + b4
Got:
    b0 + b1 + b7
**********************************************************************

and

sage-runtests --long --warn-long 30.0 --random-seed=286735480429121101562228604801325644303 src/sage/categories/posets.py
**********************************************************************
Error: Failed example:: Exception raised:
Traceback (most recent call last):
  File "/sage/src/sage/doctest/forker.py", line 733, in _run
    self.compile_and_execute(example, compiler, test.globs)
  File "/sage/src/sage/doctest/forker.py", line 1157, in compile_and_execute
    exec(compiled, globs)
  File "<doctest sage.categories.posets.Posets.__iter__[2]>", line 1, in <module>
    for _ in range(Integer(10)): print(next(it))
                                       ^^^^^^^^
  File "/sage/src/sage/categories/posets.py", line 153, in __iter__
    yield from FinitePosets_n(n)
  File "/sage/src/sage/combinat/posets/posets.py", line 9125, in __iter__
    for dig in it:
  File "/sage/src/sage/graphs/digraph_generators.py", line 847, in nauty_posetg
    geng_path = NautyExecutable("genposetg").absolute_filename()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/sage/src/sage/features/__init__.py", line 761, in absolute_filename
    raise FeatureNotPresentError(self,
sage.features.FeatureNotPresentError: nauty_genposetg is not available.
Executable 'genposetg' not found on PATH.
To install nauty_genposetg using the debian package manager, you can try to run:
!sudo apt-get update 
  !sudo apt-get install nauty
To install nauty_genposetg using the Sage package manager, you can try to run:
  !sage -i nauty
No equivalent system packages for pip are known to Sage.

    for _ in range(10): print(next(it))
Exception raised:
    Traceback (most recent call last):
      File "/sage/src/sage/doctest/forker.py", line 733, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/sage/src/sage/doctest/forker.py", line 1157, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.categories.posets.Posets.__iter__[2]>", line 1, in <module>
        for _ in range(Integer(10)): print(next(it))
                                           ^^^^^^^^
      File "/sage/src/sage/categories/posets.py", line 153, in __iter__
        yield from FinitePosets_n(n)
      File "/sage/src/sage/combinat/posets/posets.py", line 9125, in __iter__
        for dig in it:
      File "/sage/src/sage/graphs/digraph_generators.py", line 847, in nauty_posetg
        geng_path = NautyExecutable("genposetg").absolute_filename()
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/sage/src/sage/features/__init__.py", line 761, in absolute_filename
        raise FeatureNotPresentError(self,
    sage.features.FeatureNotPresentError: nauty_genposetg is not available.
    Executable 'genposetg' not found on PATH.
    To install nauty_genposetg using the debian package manager, you can try to run:
    !sudo apt-get update 
      !sudo apt-get install nauty
    To install nauty_genposetg using the Sage package manager, you can try to run:
      !sage -i nauty
    No equivalent system packages for pip are known to Sage.

https://github.com/sagemath/sage/actions/runs/17903937351/job/50901861649#step:11:44

@dimpase
Copy link
Member

dimpase commented Sep 24, 2025

Got: #W Static module lib/oper1.g has CRC mismatch, ignoring looks like a hardware issue on the CI host.

All of these work for me

Error, the Small Groups library is required but not installed

is either a failure while installing GAP package, or the external GAP used has the package smallgrp not installed.

Ditto with nauty.

@tobiasdiez
Copy link
Contributor Author

Oh okay, so this is just the usual hiccup of the incremental CI runs. In fact, the non-incremental run shows no such errors as well: https://github.com/sagemath/sage/actions/runs/17962928730/job/51089863679?pr=40327

Thanks Dima for looking into this! Ready for review now.

@tobiasdiez tobiasdiez marked this pull request as ready for review September 24, 2025 04:25
@dimpase
Copy link
Member

dimpase commented Sep 29, 2025

Makefile:CONFIG_FILES = build/make/Makefile src/bin/sage-env-config build/bin/sage-build-env-config pkgs/sage-conf/_sage_conf/_conf.py
configure.ac:AC_CONFIG_FILES([pkgs/sage-conf/_sage_conf/_conf.py])
src/doc/en/developer/packaging_sage_library.rst:    g += (extras_require((0.5,0),(0.5,1)) + node("sage_conf", (0.5,0)))
src/doc/en/developer/packaging_sage_library.rst:  sage_conf-10.0b2-py3-none-any.whl
src/sage/meson.build:  input: '../../pkgs/sage-conf/_sage_conf/_conf.py.in'

the 5 files above still mention sage_conf in an important way. (hint: run git grep sage_conf)

These must be cleaned up appropriately.

@tobiasdiez
Copy link
Contributor Author

This will be done by reverting the revert. I can do this as part of this PR (at the cost of bloating it even more), or we keep pkgs/sage-conf/_sage_conf/_conf.py.in for the moment and then do the revert of the revert in the next beta.

@tobiasdiez
Copy link
Contributor Author

tobiasdiez commented Sep 29, 2025

The sage env error is indeed still there:

src/bin/sage -t --long --warn-long 30.0 --random-seed=152515577885819662609990838607771635467 src/sage/env.py
**********************************************************************
File "src/sage/env.py", line 24, in sage.env
Failed example:
    out.returncode
Expected:
    0
Got:
    1
**********************************************************************
File "src/sage/env.py", line 26, in sage.env
Failed example:
    out.stdout.strip()
Expected:
    'True'
Got:
    ''
**********************************************************************
File "src/sage/env.py", line 28, in sage.env
Failed example:
    out.stderr.strip()
Expected:
    ''
Got:
    'Traceback (most recent call last):\n  File "<string>", line 1, in <module>\n  File "<frozen genericpath>", line 112, in samefile\nTypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType'
**********************************************************************

so this needs a decision on how to resolve this doctest failure: see #40882 (comment) for more details and options

(and thanks @user202729 for the suggestion to improve the doctest to issue more meaningful details)

@vbraun
Copy link
Member

vbraun commented Sep 30, 2025

Copying my remark about the sage.env test from #40882 so it doesn't get lost:

First and foremost, it tests that you can import sage.all without any environment variables set. This actually failed here and saved us on this PR from shipping yet another broken release. Its not just a nice-to-have. Big -1 to just deleting it.

Edit:

If on the other hand SAGE_ROOT is meaningless then why is it in sage.env. Is it actually unused?

@dimpase
Copy link
Member

dimpase commented Sep 30, 2025

Copying my remark about the sage.env test from #40882 so it doesn't get lost:

First and foremost, it tests that you can import sage.all without any environment variables set. This actually failed here and saved us on this PR from shipping yet another broken release.

so, which variable was needed to be set?

Its not just a nice-to-have. Big -1 to just deleting it.

I don't understand - it's possible to have sagelib needing something like LD_LIBRARY_PATH set.
Do you mean "without any SAGE_*-env. vars. set"?

It's certainly possible to test for this alone. If this is what you would like to see here,
such a test can be added, hopefully.

Edit:

If on the other hand SAGE_ROOT is meaningless then why is it in sage.env. Is it actually unused?

git grep SAGE_ROOT src/sage/ will tell you that it's used in a number of places.

@dimpase
Copy link
Member

dimpase commented Oct 2, 2025

@vbraun would you mind moving forward here and dealing with the particular doctest in a follow-up? Because this precludes using Sage's cython headers with external projects, and spkgs such as sage_numerical_backends_*,
as reported on #40726.

@dimpase
Copy link
Member

dimpase commented Oct 3, 2025

#40964 picks the needed bits from here (more precisely, from #40765) to provide the fix needed for #40726

@dimpase
Copy link
Member

dimpase commented Oct 3, 2025

by the way, does one need from . import config in src/sage/all.py ?

@tobiasdiez
Copy link
Contributor Author

by the way, does one need from . import config in src/sage/all.py ?

I don't think this is needed. I consider all these env/config variables an implementation detail, not something user-facing.

this one appears to be needed for availability of cython headers for some optional packages, and for downstream cython packages.

One needs get_include_dirs(), specifically, to be available.

Perhaps the latter can be moved somewhere else, more natural API-wise.

Yes, you do need these functions but not in the all namespace, ie in the sage console. In a package you can simply import get_include_dirs from sage.conf.

@tobiasdiez
Copy link
Contributor Author

@dimpase @vbraun @orlitzky could we please get this in?

(For the failing test-long, see #41002 - the build for a clean image succeeds: https://github.com/sagemath/sage/actions/runs/18301584388/job/52110502440?pr=40327#step:11:18703)

@user202729
Copy link
Contributor

test-long looks sane, but maybe you can just retrigger it just in case? since #41002 is [ci fix], it should pass this time.

@dimpase
Copy link
Member

dimpase commented Oct 9, 2025

this branch has not got all the changes we had for configure.ac, e.g. one still gets
pkgs/sage-conf/_sage_conf/_conf.py after ./configure run, and pkgs/sage-conf/ is still there.

@tobiasdiez
Copy link
Contributor Author

this branch has not got all the changes we had for configure.ac, e.g. one still gets pkgs/sage-conf/_sage_conf/_conf.py after ./configure run, and pkgs/sage-conf/ is still there.

Yes, I've not reinstated #40765 here to keep this PR as self-contained as possible. But I can do this here as well, if you prefer doing it that way. The _conf.py is the only file left in pkgs/sage-conf, and it will be moved to sagelib with #40765.

@dimpase
Copy link
Member

dimpase commented Oct 10, 2025

I'd much prefer having a branch which has no obvious defects.

@tobiasdiez
Copy link
Contributor Author

I've now reverted the revert, except for tobiasdiez@72876f0 (because I kind of remember a discussion about this commit it another PR).

Let's see if CI is happy.

@dimpase
Copy link
Member

dimpase commented Oct 10, 2025 via email

@dimpase
Copy link
Member

dimpase commented Oct 10, 2025

OK, great, it all works!
merge

vbraun pushed a commit to vbraun/sage that referenced this pull request Oct 11, 2025
sagemathgh-40327: Remove sage-conf 
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

No longer needed after sagemath#39030.
Fixes sagemath#40793.


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#39030
- sagemath#40357
- sagemath#40765

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40327
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik
vbraun pushed a commit to vbraun/sage that referenced this pull request Oct 12, 2025
sagemathgh-40327: Remove sage-conf 
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

No longer needed after sagemath#39030.
Fixes sagemath#40793.


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#39030
- sagemath#40357
- sagemath#40765

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40327
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik
@vbraun vbraun merged commit ada2dbf into sagemath:develop Oct 16, 2025
45 of 47 checks passed
@kiwifb
Copy link
Member

kiwifb commented Oct 20, 2025

Darn, I was not paying attention, I was using that :)
Seriously, it would have been nice if the configurable bits had been separated out from the actual code, although I now see configurable bits in get_editable_root. Hum, it won't make any sense in sage-on-gentoo anyway..

I am trying to wrap my head around the construct .replace("${prefix}", SAGE_LOCAL), what is it supposed to do? Especially when both the prefix and SAGE_LOCAL are /usr. Not that it will matter much to me in the end.

@user202729
Copy link
Contributor

Darn, I was not paying attention, I was using that :)

looks like there are ≥ 2 people wanting to remove it. By our dispute voting rule, if you can look for ≥ 4 people who would vote against, then you can propose a pull request reverting this. (be quick before more pull requests get merged on top of it making it more difficult to revert…)

(

@dimpase
Copy link
Member

dimpase commented Oct 21, 2025

any revert of this sort of PR throws a huge spanner into the works.

I am sure all the kinks can be ironed out without it.

@kiwifb
Copy link
Member

kiwifb commented Oct 21, 2025

To be clear, I am not against. It just caught me unaware, and I had a technical question for my own edification.

In the big picture, stuff that was never a very happy split was moved to a new location and some adjustments. The most important bits have now been moved to sage/config.py.in and my only real issue would be on the preference for all the configurable variables to be in a file separate from anything else like functions.

@orlitzky
Copy link
Contributor

I am trying to wrap my head around the construct .replace("${prefix}", SAGE_LOCAL), what is it supposed to do? Especially when both the prefix and SAGE_LOCAL are /usr. Not that it will matter much to me in the end.

This is to support sage-the-distro. I am pleased to report that I have not had to think about this in a long time, but I think the issue is that, when ./configure is run, SAGE_LOCAL is not yet known. So if it is determined that we should write a SAGE_LOCAL path into the config file (to use a sage-distro package rather than a system one), we can't. Instead we write the magic string ${prefix} and do the replacement inside the config file, where SAGE_LOCAL will be set. You can find examples in the gap and maxima spkg-configure.m4.

@tobiasdiez
Copy link
Contributor Author

tobiasdiez commented Oct 21, 2025

In the big picture, stuff that was never a very happy split was moved to a new location and some adjustments.

I'm pretty sure this was not the last adjustment to the config-system. Actually, it's more a start - now that we only have to worry about meson writing this file, we can use it more productively and move magic code like the prefix setting to meson.

The most important bits have now been moved to sage/config.py.in and my only real issue would be on the preference for all the configurable variables to be in a file separate from anything else like functions.

Is this only because you manually set these variables in gentoo, or do you see any other advantages in such as split? My goal would be that in the near future, you can use the meson-generated file and don't have to set anything manually.

I think I asked you this before, so please accept my apology for forgetting, but what modifications do you have to do for gentoo? Looking at https://github.com/cschwan/sage-on-gentoo/blob/master/sci-mathematics/sagemath/files/sage-conf.py-10.8, it appears to me that meson should generate a mostly correct config file once you set the correct prefix.

@tobiasdiez tobiasdiez deleted the remove-sage-conf branch October 21, 2025 13:36
@kiwifb
Copy link
Member

kiwifb commented Oct 21, 2025

The most important bits have now been moved to sage/config.py.in and my only real issue would be on the preference for all the configurable variables to be in a file separate from anything else like functions.

Is this only because you manually set these variables in gentoo, or do you see any other advantages in such as split? My goal would be that in the near future, you can use the meson-generated file and don't have to set anything manually.

I'd say so. If I am going to replace those variables, having them in one file where I only touch them and nothing else feels ideal.

I think I asked you this before, so please accept my apology for forgetting, but what modifications do you have to do for gentoo? Looking at https://github.com/cschwan/sage-on-gentoo/blob/master/sci-mathematics/sagemath/files/sage-conf.py-10.8, it appears to me that meson should generate a mostly correct config file once you set the correct prefix.

And once I am finished with the conference I am at right now, trying to see what happens with pure meson without patching should be my first order of the day. the main point of the old system was you coud just define whatever you wanted to override and leave the rest alone. If anything, my feeling is that too many variables seem to need adjustment in that file in sage-the-distro.

@kiwifb
Copy link
Member

kiwifb commented Oct 23, 2025

Sage-on-gentoo builds again. This is the current state of affair https://github.com/cschwan/sage-on-gentoo/blob/master/sci-mathematics/sagemath/files/sagemath-10.8-config.py.in.patch a lot of that stuff is self inflicted. One day we'll get rid of jmol for real.

@orlitzky
Copy link
Contributor

Sage-on-gentoo builds again. This is the current state of affair https://github.com/cschwan/sage-on-gentoo/blob/master/sci-mathematics/sagemath/files/sagemath-10.8-config.py.in.patch a lot of that stuff is self inflicted. One day we'll get rid of jmol for real.

GAP_ROOT_PATHS probably doesn't need to exist. It's there only to allow add-on GAP packages to be installed for the system GAP via spkg. I expect there are exactly zero people doing that, since every distro that ships GAP has more add-on packages than sage does, and they work better. I know this would make @tornaria happy too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cp: cannot stat 'conftest.py': No such file or directory

6 participants